home *** CD-ROM | disk | FTP | other *** search
- (***************************************************
-
- Ant Movie Catalog importation script
- www.antp.be/software/moviecatalog/
-
- [Infos]
- Authors=KaraGarga
- Title=MovieGoods
- Description=Import big movie poster from moviegoods.com
- Site=moviegoods.com
- Language=EN
- Version=0.1
- Requires=3.5.0
- Comments=
- License=Made for Ant Movie Catalog and can be distributed freely...
- GetInfo=1
-
- [Options]
-
- ***************************************************)
-
- program MOVIEGOODS;
-
- var
- MovieName: string;
- MovieURL: string;
- ImageURL: string;
- ImageName: string;
- function FindLine(Pattern: string; List: TStringList; StartAt: Integer): Integer;
- var
- i: Integer;
- begin
- Result := -1;
- if StartAt < 0 then
- StartAt := 0;
- for i := StartAt to List.Count-1 do
- if Pos(Pattern, List.GetString(i)) <> 0 then
- begin
- Result := i;
- Break;
- end;
- end;
-
- procedure CutAfter(var Str: string; Pattern: string);
- begin
- Str := Copy(str, Pos(Pattern, Str) + Length(Pattern), Length(Str));
- end;
- procedure CutBefore(var Str: string; Pattern: string);
- begin
- Str := Copy(Str, Pos(Pattern, Str), Length(Str));
- end;
-
- function GetStringFromHTML(Page, StartTag, CutTag, EndTag: string): string;
- begin
- Result := '';
- if Pos(StartTag, Page) > 0 then begin
- CutBefore(Page, StartTag);
- if Length(CutTag) > 0 then
- CutAfter(Page, CutTag);
- Result := Copy(Page, 0, Pos(EndTag, Page) - 1);
- HTMLDecode(Result);
- // ShowMessage('DEBUG: GetStringFromHTML - StartTag "'+StartTag+'", CutTag "'+CutTag+'", EndTag "'+EndTag+'", Result "'+Result+'" ___ '+Page);
- end;
- end;
-
-
- procedure AnalyzePage(Address: string);
- var
- Page: TStringList;
- begin
- Page := TStringList.Create;
- Page.Text := GetPage(Address);
- if pos('<TD VALIGN="top" ALIGN="center" width="120">', Page.Text) = 0 then
- begin
- ShowMessage('Sorry no cover available!');
- end else
- begin
- PickTreeClear;
- PickTreeAdd('Search results', '');
- AddMoviesTitles(Page);
- if PickTreeExec(Address) then
- AnalyzePage2(Address);
- end;
- Page.Free;
- end;
-
- procedure AnalyzePage2(Address: string);
- var
- Page: TStringList;
- begin
- Page := TStringList.Create;
- Page.Text := GetPage(Address);
- //if pos('<!--- Image --->', Page.Text) <> 0 then
- //begin
- // AnalyzeMoviePage(Page)
- //end else
- begin
- PickTreeClear;
- PickTreeAdd('Search results', '');
- AddMoviesTitles2(Page);
- if PickTreeExec(Address) then
- //Setfield(fieldURL, (Address));
- GetPicture (Address);
- end;
- Page.Free;
- end;
-
- procedure AddMoviesTitles(ResultsPage: TStringList);
- var
- Page: string;
- MovieTitle, MovieAddress: string;
- begin
- Page := ResultsPage.Text;
- while Pos('<TD VALIGN="top" ALIGN="center" width="120">', Page) > 0 do
- begin
- CutBefore(Page, '<TD VALIGN="top" ALIGN="center" width="120">');
- MovieAddress := GetStringFromHTML(Page, 'width="120"><A HREF="', 'HREF="', '"');
- MovieTitle := GetStringFromHTML(Page, 'ALT="', '"', '"></A>');
- ImageURL:= 'http://www.moviegoods.com/Assets/product_images/1000/'+GetStringFromHTML(Page, 'width="120"><img SRC="', 'SRC="', '"');
- CutAfter(Page, '</A>');
- //ImageName=: ImageURL
- //ImageName=: copy(StringReplace(ImageName, '/images/na_generic_out.jpg', 'This Item Sold Out'));
- MovieAddress := StringReplace(MovieAddress, '1000.A', '1020.A');
- HTMLRemoveTags(MovieTitle);
- PickTreeAdd(MovieTitle, MovieAddress+ImageURL);
- //PickTreeAdd('',ImageURL);
- end;
- end;
-
- procedure AddMoviesTitles2(ResultsPage: TStringList);
- var
- Page: string;
- MovieTitle, MovieAddress: string;
- begin
- Page := ResultsPage.Text;
- while Pos('<INPUT TYPE="HIDDEN" NAME="DSP_IMAGE" VALUE="', Page) > 0 do
- begin
- CutBefore(Page, '<INPUT TYPE="HIDDEN" NAME="DSP_IMAGE" VALUE="');
- MovieAddress := 'http://www.moviegoods.com/Assets/product_images/1000/'+GetStringFromHTML(Page, '<INPUT TYPE="HIDDEN" NAME="DSP_IMAGE" VALUE="', 'UE="', '">');
- MovieTitle := GetStringFromHTML(Page, 'border=2 ALT=', '"', '></A>');
- MovieAddress := StringReplace(MovieAddress, '1000.A', '1020.A');
- CutAfter(Page, '">');
- HTMLRemoveTags(MovieTitle);
- PickTreeAdd(MovieTitle, MovieAddress);
- end;
- end;
-
- {function FindValue(BeginTag, EndTag: string; Page: TStringList; var LineNr: Integer; var Line: string): string;
- var
- BeginPos, EndPos: Integer;
- Value: string;
- begin
- Result := '';
- Value := '';
- BeginPos := Pos(BeginTag, Line);
- if BeginPos > 0 then
- begin
- BeginPos := BeginPos + Length(BeginTag);
- if BeginTag = EndTag then
- begin
- Delete(Line,1,BeginPos-1);
- BeginPos := 1;
- end;
- EndPos := pos(EndTag, Line);
- while ((EndPos = 0) and (LineNr < Page.Count-1 )) do
- begin
- Value := Value + copy(Line, BeginPos, Length(Line) - BeginPos);
- // Next Line
- BeginPos := 1;
- LineNr := LineNr + 1;
- Line := Page.GetString(LineNr);
- if Value = '' then
- Exit;
- EndPos := Pos(EndTag, Line);
- end;
- Value := Value + copy(Line, BeginPos, EndPos - BeginPos);
- end;
- Result := Value;
- end;}
-
- begin
- if CheckVersion(3,5,0) then
- begin
- MovieName := GetField(fieldOriginalTitle);
- if MovieName = '' then
- MovieName := GetField(fieldTranslatedTitle);
- if Input('MovieGoods Poster Import 0.1', 'Please enter English or USA title for the movie:', MovieName) then
- begin
- AnalyzePage('http://www.moviegoods.com/find.asp?mscssid=&opt1=TI&opt1=RD&bool1=OR&str2=&x=0&y=0&str1='+UrlEncode(MovieName));
- end;
- end
- else
- ShowMessage('This script requires a newer version of Ant Movie Catalog (at least the version 3.5.0)');
- end.
-